const { notEmpty } = require("../utils.js");

module.exports = {
    description: "generate store",
    prompts: [{
        type: "input",
        name: "name",
        message: "store name please",
        validate: notEmpty("name")
    },
    {
        type: "checkbox",
        name: "blocks",
        message: "Blocks:",
        choices: [{
            name: "state",
            value: "state",
            checked: true
        },
        {
            name: "mutations",
            value: "mutations",
            checked: true
        },
        {
            name: "actions",
            value: "actions",
            checked: true
        }
        ],
        validate(value) {
            if (!value.includes("state") || !value.includes("mutations")) {
                return "store require at least state and mutations";
            }
            return true;
        }
    }
    ],
    actions(data) {
        const name = "{{name}}";
        const { blocks } = data;
        const options = ["state", "mutations"];
        const joinFlag = `,
  `;
        if (blocks.length === 3) {
            options.push("actions");
        }

        const actions = [{
            type: "add",
            path: `src/store/modules/${name}.js`,
            templateFile: "plop-templates/store/index.hbs",
            data: {
                options: options.join(joinFlag),
                state: blocks.includes("state"),
                mutations: blocks.includes("mutations"),
                actions: blocks.includes("actions")
            }
        }];
        return actions;
    }
};
